<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        const p1 = new Promise((resolve,reject) => {
        try{
            //    throw new Error("A错误")
            setTimeout(() => {
                console.log("请求A结束...");
                resolve("A数据")
            }, 1500); 
        }
        catch(e){
            reject(e.message)
        }
        });

        const p2 = new Promise((resolve,reject) => {
        try{
            //    throw new Error("B错误")
            setTimeout(() => {
                console.log("请求B结束...");
                resolve("B数据")
            }, 3000); 
        }
        catch(e){
            reject(e.message)
        }
        });

        const p3 = new Promise((resolve,reject) => {
        try{
            //    throw new Error("C错误")
            setTimeout(() => {
                console.log("请求C结束...");
                resolve("C数据")
            }, 1000); 
        }
        catch(e){
            reject(e.message)
        }
        });

        /*
        Promise.all方法：
            -接受一个数据（原则上是iterable类型）作为参数
            -all方法默认返回pending状态的promise实例
            -当所有的promise实例全部完成，返回fulfilled状态的实例，值为所有成功组成的数组
            -当其中有一个promise实例执行失败，则all方法返回失败的promise实例，值是这个错误
        */ 

        const result = Promise.all([p1,p2,p3]);
        console.log("result",result);
        result.then(value => {
            console.log("全部完成");
        })
        .catch(reason => {
            console.log("有错误的",reason);
        })
    </script>
</body>
</html>